#ifndef PARAMETERVALUES_H_
#define PARAMETERVALUES_H_

#include "string.h"

//Parameter Values Types
#define V_INT	 	1
#define V_STR	 	2
#define V_STR_INT	3
#define V_STR_REG	4

typedef struct
{
	int type;
	int size;
	const char** val_mat_str;
	int* val_mat_int;
}ParamValue;

ParamValue UI_MODE_PORT;
/*
ParamValue UI_ASYNC_BAUD;
ParamValue UI_ASYNC_PARITY;
ParamValue UI_ASYNC_DATA;
ParamValue UI_ASYNC_STOP;
ParamValue UI_ASYNC_FLOW;*/

ParamValue UI_SPI_BAUD;
ParamValue UI_SPI_DATA;

ParamValue WL_LINK_MOD;
ParamValue WL_LINK_FEC;
ParamValue WL_LINK_PROT;
ParamValue WL_LINK_SPACE;
ParamValue WL_LINK_BAUD;
ParamValue WL_LINK_PWR;
//ParamValue WL_WIFI_MODE;

ParamValue NET_SECUR_SECTYPE;
ParamValue NET_SECUR_ENCTYPE;

ParamValue OPS_PWRS_MODE;

ParamValue ADV_DPORT_PRIME;
ParamValue ADV_DPORT_ECHO;
ParamValue ADV_DPORT_RATE;
ParamValue ADV_DPORT_BITS;
ParamValue ADV_DPORT_PARITY;
ParamValue ADV_DPORT_FLOW;
ParamValue ADV_DPORT_STOP;
ParamValue ADV_XMOD_IMAGE;
ParamValue ADV_XMOD_CFGDN;
ParamValue ADV_XMOD_CFGUP;
ParamValue ADV_TEST_TSTSGL;
/*ParamValue OPS_PWRS_TIMER;
ParamValue OPS_PWRS_UART;
ParamValue OPS_PWRS_PIN;
ParamValue OPS_PWRS_WIFI;
ParamValue OPS_PWRS_UHF;
ParamValue OPS_PWRS_USB;
ParamValue OPS_PWRS_BT;
ParamValue OPS_PWRS_LVL;
*/
/*
ParamValue NET_DL_MNG;
ParamValue NET_APP_HTTPD;
ParamValue NET_APP_TRANS;
*/

int GetValueIndexI(ParamValue* pv, void* value);
int GetValueIndexS(ParamValue* pv, char* value);
int GetAbsoluteIndex(ParamValue* pv, const char  value_index);
int GetAbsoluteIndex_forREG(ParamValue* pv, const char value_reg);
int GetAbsoluteIndex_forInt(ParamValue* pv, int value);
int GetRoundValue(ParamValue* pv, char source_val, char* dest_val);
void Init_Param_Values();

#endif //PARAMETERVALUES_H_

